Disk device assigned id codes for storage areas of a storage device

ABSTRACT

A disk device can include a controller configured to transmit first commands in response to second commands from a host, the first commands to assign at least one identification (ID) code to at least one of a plurality of storage areas in a storage device, the second commands including the at least one ID code; wherein the controller transfers data between the host and the storage device using the ID codes.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/019,424 filed on Feb. 2, 2011, which claims priority under 35 U.S.C.§119(a) from Korean Patent Application No. 1 0-201 0-0009644, filed onFeb. 2, 2010, in the Korean Intellectual Property Office, thedisclosures of which are incorporated herein in their entirety byreference.

BACKGROUND

1. Field of the Invention

The present general inventive concept relates to systems and methods ofdata transfer between a controller and a storage device, and, moreparticularly, to systems and methods of determining a storage capacityand one or more storage areas of a storage device coupled to acontroller, and transferring data therebetween.

2. Description of the Related Art

As multi-media use increases, data storage capacity of devices to storedata and multi-media has also increased. Recently, manufacturers ofstorage devices have increased the maximum storage capacity of datastorage devices, such as hard disk drives. User multi-media devices andcomputers that are coupled to these storage devices with increasedcapacity have problems reading and writing data to all portions of thestorage device. That is, the portion of the storage device that data canbe written to and read from is often limited to the areas that arerecognizable and addressable by the user's multi-media systemcontroller. For example, an external storage device typically includes aUSB (Universal Serial Bus) controller and a hard disk drive. Someoperating systems do not recognize a full storage capacity of theexternal storage device. For example, multi-media and computer systemswith 32-bit operating systems typically do not recognize a total storagecapacity of an external storage device that is greater than or equal totwo terabytes (TB). Thus, when a user connects an external storagedevice to a multi-media host system with a storage capacity of 2 TB orgreater, the host system does not recognize the full storage capacity ofthe external storage device.

SUMMARY

The present general inventive concept provides systems and methods ofdata transfer between a controller and a storage device. In particular,exemplary embodiments of the present general inventive concept mayprovide systems and methods of determining a storage capacity of astorage device coupled to a controller, and transferring datatherebetween.

Additional features and utilities of the present general inventiveconcept will be set forth in part in the description which follows and,in part, will be obvious from the description, or may be learned bypractice of the general inventive concept.

Exemplary embodiments of the present general inventive concept provide asystem to communicate data transfer of data between a disk device and anexternal storage device, the system including a host to generate acontrol command to communicate with an external storage device, and adisk device to receive the control command from a host to identify andcommunicate with an external storage device when connected to theexternal storage device and to configure the external storage device byassigning an ID code to each storage area of the external storagedevice.

The system may also include where the control command includes ID codeinformation to be assigned to each storage area of the storage device.

The system may also include where the disk device generates a secondcontrol command in response to receiving the control command from thehost, where the second control command includes ID code information tobe assigned to each storage area of the storage device.

The system may also include where the host includes a 32 bit operatingsystem.

The system may also include where the assigning of the ID codes to thestorage areas is variable such that at least two storage areas aremerged to one larger storage area.

The system may also include where all of the storage areas are assigneda single ID code.

The system may also include where data sizes are transferred between thedisk device and the external storage device based on the assigned IDcode Information.

The system may also include where the disk device has a switching unitto determine whether to assign an ID code to each storage area of theexternal storage device. The system may also include where the switchingunit determines whether to assign an ID code to each storage area of theexternal storage device based on the type of operating system of thehost device.

The system may also include where the switching system has a userinterface to implement switching via buttons.

The system may also include where the user interface further includes arestart button to automatically reconnect the host to the externalstorage device to recognize a switching operation.

The system may also include where the control command has a restartsignal such that the disk device operates the external storage device asa reconnected state.

Exemplary embodiments of the present general inventive concept may alsoprovide a method to transfer data between a disk device and an externalstorage device, the method including receiving a command signal at adisk device from a host device to identify the external storage deviceand to assign ID codes to each storage area of the external storagedevice, and assigning the ID codes to the storage areas to configure theexternal storage device based on the identification of the externalstorage device.

The method may also include where the command signal includes ID codeinformation of the ID codes.

The method may also include where the disk device generates a secondcommand signal including ID code information to generate the ID codeswhen the command signal is received from the host device.

The method may also include where the ID codes are generated by using aUSB LUN configuration at the external storage device.

The method may also include transferring data of different sizes betweenthe disk device and the external storage device based on the configuredstate of the external storage device.

The method may also include where the ID codes are assigned to thestorage areas based on the type of operating system of the host device.

Exemplary embodiments of the present general inventive concept may alsoprovide a disk device to transfer to and from an external storagedevice, the disk device including a control part to receive a controlcommand from a host device to identify the external storage device, amemory to store the control command and to generate a second controlsignal to assign ID codes to storage areas of the external storagedevice, and a switching unit to determine whether to transmit the secondcontrol signal to the external storage device to assign the ID codes tothe storage areas therein.

The device may also include where the switching is performed based onthe type of operating system of the host device.

The switching unit of the disk device may also include a restart buttonto restart the external storage device when the second signal istransmitted to the external storage device.

Exemplary embodiments of the present general inventive concept may alsoinclude a method to transfer data between a controller and an externalstorage device, the method including receiving a command signalincluding ID codes of one or more storage areas of the external storagedevice at a controller from a host device, assigning the ID codes to theone or more storage areas to configure the external storage device, andtransferring data between the controller and at least one of the one ormore storage areas of the external storage device.

Exemplary embodiments of the present general inventive concept may alsoinclude a method to transfer data between a controller and an externalstorage device, the method including receiving a command signal at thecontroller from a host device to identify one or more storage areas ofthe external storage device, identifying the one or more storage areaswith the controller, assigning ID codes to the one or more storage areasto configure the external storage device, and transferring data betweenthe controller and at least one of the one or more storage areas of theexternal storage device.

The method may also include transmitting a second command signal fromthe controller to the external storage device to reassign the ID codesto configure the external storage device.

Exemplary embodiments of the present general inventive concept may alsoinclude a method of initializing an external storage devicecommunicatively coupled to a controller, the method includingdetermining a position of a selection switch in the external storagedevice with the controller, and controlling the external storage deviceto operate in a first mode when it is determined that the selectionswitch is in a first position, and controlling the external storagedevice to operating in a second mode when it is determined that theselection switch is in a second position, wherein one or more storageareas of the external storage device in the first mode have a firstmaximum storage capacity, and the one or more storage areas of theexternal storage device in the second mode have a second maximum storagecapacity that is greater than the first maximum storage capacity.

Exemplary embodiments of the present general inventive concept may alsoinclude a method of configuring an external storage devicecommunicatively coupled to a controller, the method includingdetermining whether a flag set in a memory of the controller is set to afirst value or a second value according to a received selection,operating the external storage device in a first mode when it isdetermined that the selection is the first value, and operating theexternal storage device in a second mode when it is determined that theselection is the second value, wherein one or more storage areas of theexternal storage device in the first mode have a first maximum storagecapacity, and the one or more storage areas of the external storagedevice in the second mode have a second maximum storage capacity that isgreater than the first maximum storage capacity.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and/or other features and utilities of the present generalinventive concept will become apparent and more readily appreciated fromthe following description of the exemplary embodiments, taken inconjunction with the accompanying drawings, in which:

FIG. 1 illustrates a block diagram a system including a controller andan external storage device according to exemplary embodiments of thepresent general inventive concept;

FIG. 2 illustrates a flowchart of a method of data transfer between thecontroller and the external storage device illustrated in FIG. 1according to exemplary embodiments of the present general inventiveconcept;

FIG. 3A illustrates a specification table of a mass storage deviceaccording to exemplary embodiments of the present general inventiveconcept;

FIG. 3B illustrates a table of eight storage devices and/or storageareas having different logical unit numbers (LUNs) according toexemplary embodiments of the present general inventive concept;

FIG. 4 illustrates a total storage area of an external storage devicehaving a plurality of storage areas, where each storage area has anidentification code according to exemplary embodiments of the presentgeneral inventive concept;

FIG. 5 illustrates a detailed view of a total storage area of FIG. 4that includes identification (ID) codes for each of the storage areasaccording to exemplary embodiments of the present general inventiveconcept;

FIG. 6 illustrates a system block diagram according to exemplaryembodiments of the present general inventive concept;

FIG. 7 illustrates a flow chart of an exemplary method of ID assignmentand data transfer in the system illustrated in FIG. 6 according toexemplary embodiments of the present general inventive concept;

FIG. 8 illustrates the ID codes of the external storage deviceillustrated in FIG. 6 according to exemplary embodiments of the presentgeneral inventive concept;

FIG. 9 illustrates different ID codes for different storage areasaccording to exemplary embodiments of the present general inventiveconcept;

FIG. 10 illustrates a flowchart detailing a method of data transfer withthe system illustrated in FIG. 6 according to exemplary embodiments ofthe present general inventive concept;

FIG. 11 illustrates a block diagram of an external storage deviceaccording to exemplary embodiments of the present general inventiveconcept;

FIG. 12A illustrates a flowchart of a method of initializing an externalstorage device according to exemplary embodiments of the present generalinventive concept;

FIG. 12B illustrates a display that can be displayed by a display unitcommunicatively coupled to at least the external storage deviceaccording to exemplary embodiments of the present general inventiveconcept;

FIG. 13 illustrates a detailed view of the controller illustrated inFIG. 6 according to exemplary embodiments of the present generalinventive concept;

FIG. 14 illustrates a flowchart of a method of configuring an externalstorage device according to exemplary embodiments of the present generalinventive concept;

FIG. 15 illustrates a flowchart of a method of using a non-volatilememory flag information in the operation of an external memory deviceaccording to exemplary embodiments of the present general inventiveconcept; and

FIGS. 16A-16C illustrate flowcharts of operations of finding a targetaddress according to exemplary embodiments of the present generalinventive concept.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The attached drawings for illustrating exemplary embodiments of theinventive concept are referred to in order to gain a sufficientunderstanding of the inventive concept, the merits thereof, and theobjectives accomplished by the implementation of the inventive concept.

Reference will now be made in detail to the embodiments of the presentgeneral inventive concept, examples of which are illustrated in theaccompanying drawings, wherein like reference numerals refer to the likeelements throughout. The embodiments are described below in order toexplain the present general inventive concept by referring to thefigures.

FIG. 1 Illustrates a system 100 including a controller and an externalstorage device according to exemplary embodiments of the present generalinventive concept. System 100 can include a controller 11 0 and anexternal storage device 150. The controller 110 can be a disk device, aprocessor, a field programmable gate array, a programmable logic device,a computer, a server, a personal digital assistant, a smartphone, and/orany other suitable device to carry out the exemplary embodiments of thepresent general inventive concept as disclosed herein. In exemplaryembodiments of the present general inventive concept, the controller 110may be part of a host device or may be communicatively coupled to a hostdevice and/or display device. The external storage 150 can be a harddisk drive, solid state drive, memory device, or any other suitablestorage device to carry out the exemplary embodiments of the presentgeneral inventive concept.

According to exemplary embodiments of the present general inventiveconcept, the controller 110 can identify tile external storage device150 at least when the external storage device 150 is communicativelycoupled (e.g., via a wired and/or wireless communication link) to thecontroller 110. For example, the controller 110 can identify theexternal storage device 150 and a plurality of storage areas of theexternal storage device 150 by at least one identification (“ID”) code.In exemplary embodiments of the present general inventive concept, datathat includes one or more ID codes of the respective one or more storageareas of the external storage device 150 may be transmitted to thecontroller 110 via the wired and/or wireless communication link. Datathat includes one or more ID codes of the respective one or more storageareas of the external storage 150 device may be stored in a memory orstorage unit of the controller 110.

FIG. 2 illustrates a method of data transfer between the controller 110and the external storage device 150 illustrated in FIG. 1 according toexemplary embodiments of the present general inventive concept.Referring to FIGS. 1 and 2, at operation S210, the external storagedevice 150 may be identified to have one or more storage areas by, forexample, the controller 110 detecting an ID code. For example, thecontroller 110 may request one or more ID codes from the externalstorage device 150, and/or the external storage device may transmit theID codes to the controller when the external storage device and thecontroller 110 are communicatively coupled together. At operation S220,the external storage device 150 and the controller 110 can communicatewith one another, where the controller ′10 may read and/or write data toand/or from one or more storage areas (e.g., all storage areas) of theexternal storage device 150. That is, as the controller 110 hasidentified the ID codes for the one or more storage areas of theexternal storage device at operation S210, the controller 110 may readand/or write data to and/or from one or more storage areas (e.g., allstorage areas) of the external storage device 150 using the ID codes.

FIG. 3A illustrates a UFI specification table of a USB mass storagedevice. For example, the external storage device 150 as illustrated inFIG. 1 may be a storage device having a USB interface which provides aLogical Unit Number (LUN), and where a data field specifies the numberof a logical unit that may process a command block. The Logical UnitNumber (LUN) can be used by a controller 110 to recognize and/ordetermine the full storage capacity of an external storage device. Asillustrated in FIG. 3A, an exemplary USB mass storage classspecification may include fields (e.g., byte fields 0-11, each having 8bits (i.e., bits 0-7) for an Operation Code, Logical Unit Number (LUN),Logical Block Address (LBA), Transfer or Parameter List or AllocationLength, and one or more Reserved areas. In exemplary embodiments of thepresent general inventive concept, the Reserved areas of the byte fieldsillustrated in FIG. 3A may be accessed, for example, by entering a code,password, or any other suitable security measure in, for example, agraphical user Interface window (e.g., a pop-up window). The graphicaluser interface window can be displayed by a display device that is, forexample, coupled to the controller 110 or a host that includes thecontroller 110 illustrated in FIG. 1.

FIG. 3B illustrates a table that includes an example eight devices(e.g., Device 0-Device 7) and/or storage areas having LUN numbers 0-7,where each device has an exemplary 2 TB capacity. Although eight devicesand/or storage areas, and a 2 TB capacity of each device is illustratedin FIG. 3B, these are exemplary numbers and storage capacities, and thepresent general Inventive concept is not limited thereto. That is, thecontroller 110 illustrated in FIG. 1 may recognize one or more devices,each having a storage capacity. In exemplary embodiments of the presentgeneral inventive concept, a 3-bit LUN can be assigned to the eightdevices (e.g., devices 0-7 having LUN number 0-7) in a 32 bit operatingsystem of a host (e.g., computer or multi-media device, etc.). That is,the three bit LUN for each of the eight devices may be 000, 001, 010,011, 100, 101, 110, and 111, respectively.

FIG. 4 illustrates a total storage area of an external storage devicehaving plurality of storage areas, where each storage area can have anidentification code according to exemplary embodiments of the presentgeneral inventive concept. Total storage area 300 of an external storagedevice may include storage areas ST_1, ST_2, . . . , ST_n, with eachstorage area having an identification code (as referred throughout as an“ID code”) such as CODE_1, CODE_2, . . . , CODE_n. The ID code for eachstorage area may be different for each storage area, and/or a pluralityof storage areas may have the same ID code. In exemplary embodiments ofthe present general inventive concept, each ID code can be implementedusing, for example, the USB LUN at the USB-based external storagedevice. Alternatively, any suitable LUN may be used in order to carryout the exemplary embodiments of the present general inventive conceptas detailed herein.

FIG. 5 illustrates a detailed view of a total storage area of FIG. 4that includes ID codes for each of the storage areas according toexemplary embodiments of the present general inventive concept. FIG. 5includes a total storage area 400 having five separate storage areas,ST_1, ST_2, ST_3, ST_4, and ST_5, with each storage area having adifferent ID code. For example, as illustrated in FIG. 5, storage areaST_1 can have the ID code 000, storage area ST_2 can have the ID code001, storage area ST_3 can have the ID code 010, storage area ST_4 canhave the ID code 011, and storage area ST_5 can have the ID code 100.When the controller 110 illustrated in FIG. 1 communicates with thestorage area ST_1 of external storage device 150, the storage area ST_1can be assigned the ID code of 000 by the controller 110. In exemplaryembodiments of the present general inventive concept, a controller(e.g., controller 110) and/or disk device can communicate with one ormore storage areas (e.g., ST_1, ST_2, . . . , ST_n) of a total storagearea of an external storage device using an ID code (e.g., CODE_1,CODE_2, . . . , CODE_n; or, alternatively, 000, 001, 010, etc.) of eachstorage area.

FIG. 6 illustrates a system block diagram according to exemplaryembodiments of the present general inventive concept. System 500 mayinclude a controller 510, an external storage device 550, and a host580. The controller 510 may be any suitable controller (e.g., processor,field programmable gate array, application specific integrated circuit,programmable logic unit, etc.) to carry out the exemplary embodiments ofthe present general inventive concept, and may be a disk device. Thecontroller 510 may be similar and/or the same as the controller 110illustrated in FIG. 1 and described above. The host 580 may be acomputer, a server, a tablet computer, a personal digital assistant, asmartphone, and/or a multi-media device, and/or any other suitabledevice to carry out the exemplary embodiments of the present generalinventive concept as disclosed herein. The host 580 may include and/ormay be coupled to a display device. The external storage device 550 maybe a hard disk drive, a solid state drive, a memory device, or any othersuitable storage device to carry out the exemplary embodiments of thepresent general inventive concept. As illustrated in FIG. 6, data may betransmitted between the host 580 and the controller 510, and between thecontroller 510 and the external storage device 550. As illustrated inFIG. 6 and described below, a first control command (“CON1”) can betransmitted from the host 580 to the controller 510, and a secondcontrol command (“CON2”), can be transmitted between the controller 510and the external storage device 550.

The external storage device 580 can have a plurality of storage areas,each of which may be identified by an ID code (e.g., CODE_1, CODE_2, . .. , CODE_n; or, alternatively, 000, 001, 010, etc. as illustrated inFIGS. 4 and 5). In exemplary embodiments of the present generalinventive concept, the ID codes of the plurality of storage areas mayall be different, and/or two or more of the ID codes of the plurality ofstorage areas may be the same.

FIG. 7 illustrates a flow chart of an exemplary method of ID assignmentand data transfer in the system 500 illustrated in FIG. 6 according toexemplary embodiments of the present general inventive concept.Referring to FIGS. 6 and 7, the external storage device 550 can beconnected to the controller 510, and the controller 510 can determinewhether a first control command (hereinafter referred to as “CON1”) isreceived from the host 580 at operation S610. If it is determined thatthe controller 510 receives the CON1 from the host 580 at operationS610, the controller 510 can assign an ID code to each storage area ofthe external storage device 550 using the ID code information receivedwith the CON1 from the host 580. For example, the controller 510 canmerge a plurality of storage areas into one storage area by assigning anID code to each storage area of the external storage device 550 inresponse to CON1. That is, the controller 510 can merge the storageareas by assigning the same ID code to each of the storage areas. Thecontroller 510 can change the ID code of one or more storage areas ofthe external storage device 550 by transmitting a second control command(hereinafter referred to as “CON2”), which can include information suchas the ID code to the external storage device 550. At operation S650,the controller 510 may determine whether one or more storage areas ofthe external storage device 550 are variable-type storage areas (e.g.,where a variable-type storage area is a non-merged storage area; thatis, the ID codes of a plurality of storage areas of the external storagedevice 550 are different from one another). When the storage areas havebeen identified with the ID codes in operations S640 and S650, data canbe transferred between the host 580 and the external storage device 550.That is, data can be transferred between the host 580 and the externalstorage device 550 via the controller 510.

Still referring to FIGS. 6 and 7, if the CON1 is not received by thecontroller 510 from the host 580 at operation S610, the controller 510can identify at least one storage area of the external storage device550 at operation S620. For example, the controller 510 may identify theat least one storage area by requesting data having the ID codes of oneor more storage areas of the external storage device 550. Alternatively,the controller 510 may receive the ID codes for the one or more storageareas of the external storage device 550 without transmitting a requestsignal. When at least one storage area of the external storage device510 is identified by the controller 510, data can be transferred betweenthe host 580 and the external storage device via the controller 510. Asdescribed above, the controller 510 can also change the ID code of oneor more storage areas of the external storage device 550 by transmittinga CON2 command to the external storage device 550.

FIG. 8 illustrates the ID codes of the external storage deviceillustrated in FIG. 6 according to exemplary embodiments of the presentgeneral inventive concept. As illustrated in FIG. 8, an external storagedevice 700 can have storage areas ST_1, ST_2, ST_3, ST_4, and ST_5,where each of the storage areas has the same ID code value of 000. Thatis, as all of the ID codes are the same for the storage areas (e.g.,storage areas ST_1, ST_2, ST_3, ST_4, and ST_5) of external storagedevice 700, the external storage device 700 can be used as a singlestorage area (e.g., the storage areas of the external storage devicehave been merged).

FIG. 9 illustrates different ID codes for different storage areasaccording to exemplary embodiments of the present general inventiveconcept. FIG. 9 illustrates an external storage device 900 that caninclude storage areas ST_1, ST_2, ST_3, ST_4, and ST_5, where aplurality of the storage areas have different ID codes from one another.As illustrated in FIG. 9, the storage areas ST_1 and ST_2 can have IDcode 000, storage area ST_3 can have ID code 010, and storage areas ST_4and ST_5 can have ID code 011. That is, the storage areas ST_1 and ST_2can have the same ID codes as one another, the storage areas ST_4 andST_5 can have the same ID codes as one another (e.g., but have differentID codes than storage areas ST_1 and ST_2), and storage area ST_3 canhave a different ID code from storage areas ST_1, ST_2, ST_4, and ST_5.The external storage device 800 can have a plurality of storage areas,where the configuration of the external storage device 800 can be setand/or changed, for example, when a controller (e.g., controller 510illustrated in FIG. 6) receives a CON1 (e.g., from the host 580) whichincludes information for the ID codes of the storage areas. Thecontroller (e.g. controller 510 illustrated in FIG. 6) can receive theconfiguration information, including the ID codes for the storage areasof the external storage device 800. That is, the controller can receivethe CON1 with the ID code information, and update the configuration ofthe external storage device from the single storage area configuration(e.g., storage areas ST_1 to ST_5 have the same ID code) of externalstorage device 700 of FIG. 8 to the configuration of the externalstorage device 800 illustrated in FIG. 9 (e.g., where storage area ST_1and ST_2 have the same ID code 000, storage area ST_3 has ID code 010,and storage areas ST_4 and ST_5 have ID codes 011) by transmitting, forexample, the CON2 command as described above in connection with FIGS. 6and 7.

FIG. 10 illustrates a flowchart detailing a method of data transfer withthe system illustrated in FIG. 6 according to exemplary embodiments ofthe present general inventive concept. Referring to FIGS. 6 and 10, thecontroller 510 can receive a first control command CON1 from the host580 at operation S910. The controller 510 can identify the configurationof the external storage device 550 from the received CON1 at operationS920. That is, with the received CON1, the controller 510 can determinewhether the external storage device 550 is a single storage area (e.g.,where the ID codes of the storage areas of the external storage deviceare the same, as illustrated in FIG. 8) or has a plurality of storageareas (e.g., where the ID codes of the storage areas of external storagedevice may be different from one another, as illustrated in FIG. 9) atoperation S920. In exemplary embodiments of the present generalinventive concept, the ID codes of the one or more storage areas of theexternal storage device (e.g., external storage device 550 illustratedin FIG. 6) can be provided with the first control command (CON1). Atoperation S930, data may be transferred between the controller 510 andthe one or more storage areas of the external storage device 550, and/orbetween the host 580 and the external storage device 550 via thecontroller 510.

FIG. 11 illustrates a block diagram of an external storage deviceaccording to exemplary embodiments of the present general inventiveconcept. Referring to FIG. 11, system 1000 may include a host 1002, acontroller i005, a switching apparatus 1010, and an external storagedevice 1050. The host 1002, the controller 1005, and external storagedevice 1050 illustrated In FIG. 11 may be the same as and/or similar tothe host 580, controller 510, and external storage device 550,respectively, that are illustrated in FIG. 6 and described above. Theswitching apparatus 1010 can respond from the second control commandCON2 (as described above at least in connection with FIG. 6) that can bereceived from the controller 1005, and the switching device 1010 canidentify the one or more storage areas (e.g., storage areas ST_1, ST_2,. . . , ST_n illustrated in FIG. 11) as a merged single storage (e.g.,where ID codes CODE_1, CODE_2, . . . , CODE_n are the same) or aplurality of storage areas (e.g., where at least two of the ID codes ofthe storage areas of the external storage device 1050 are different fromone another) using at least the CON2. As illustrated in FIG. 11, thecontroller 1005 can receive a CON1 command from the host 1002 toconfigure, store, and/or retrieve data from one or more of the storageareas of the external storage device 1050, and the CON2 command can betransmitted by the controller 1005 to the switching apparatus 1010 todetermine the ID codes of the one or more storage areas. That is, in theexemplary embodiments of the present general inventive conceptillustrated in FIG. 11, the CON1 may not include the ID codes of thestorage areas of the external storage device 1050, and the CON2 commandmay be transmitted to the switching apparatus 1010 from the controller1005 so that the controller 1005 can identify the ID codes of thestorage areas.

In exemplary embodiments of the present general inventive concept, theswitching apparatus 1010 of FIG. 11 can include a plurality of switches,where at least one switch and/or all switches can respond to the CON2 todetermine and/or configure at least one ID code (e.g., CODE_1, CODE_2, .. . , CODE_n) of the external storage device 1050. One or more switchescan determine and/or configure an ID code (e.g., CODE_1, CODE_2, . . . ,CODE_n) of one or more storage areas (e.g., storage areas ST_1, ST_2, .. . , ST_n) of the external storage device 1050 by being in an ON or OFFposition. That is, the CON2 can control one or more of the switches inthe switching apparatus 1010 to be in an ON or OFF position, so as toconfigure at least one of the ID code (e.g., CODE_1, CODE_2, . . . ,CODE_n) of one or more storage areas (e.g., storage areas ST_1, ST_2, .. . , ST_n) of the external storage device 1050. The controller 1005 maytransmit the CON2 command to determine the ON or OFF position of one ormore of the switches of the switching apparatus 1010 to determine the IDcodes of the storage areas of the external storage device 1050.

FIG. 12A illustrates a flowchart of a method of initializing an externalstorage device according to exemplary embodiments of the present generalinventive concept. At operation S1102, it may be determined whether aswitch (e.g., a select switch) in the external storage device is in anOFF position. If it is determined at operation S1102 that the switch isnot in an OFF position (e.g., that the switch is in an ON position), theexternal storage device can operate in an enhanced mode operation atoperation S1104. In exemplary embodiments of the present generalinventive concept, the enhanced mode operation can include a 32-bitmode, where each storage area (e.g., storage areas ST_1, ST_2, . . . ,ST_n) of the external storage device may be less than or equal to 2 TBof storage capacity. If it is determined at operation S1102 that theswitch is in an OFF position, the external storage device can operate ina legacy mode operation at operation S1106. In exemplary embodiments ofthe present general inventive concept, the legacy mode operation caninclude a 64-bit mode, where each storage area (e.g., storage areasST_1, ST_2, . . . , ST_n) of the external storage device may be lessthan or equal to 4 TB of storage capacity. That is, in exemplaryembodiments of the present general inventive concept, when the externalstorage device is powered on, if the select switch of the externalstorage device is in an OFF position, the external storage deviceoperates in a 64 bit mode, but if the switch is not in an OFF position,the external storage device may operate in an enhanced mode (e.g., a 32bit mode, where the maximum recognized storage area of the externalstorage device can be 2 TB). The above-described 32-bit and 64-bitmodes, and storage capacities of 2 TB and 4 T8 are merely exemplary, andother bit modes and corresponding storage sizes may be used.

FIG. 12B illustrates a display 1150 that can be displayed by a displayunit communicatively coupled to an external storage device, host device,and/or controller (e.g., the display device may be coupled to a hostdevice, which is communicatively coupled to the external storage device)according to exemplary embodiments of the present general inventiveconcept. The display 1150 may include a selectable enable button 1152, aselectable disable button 1154, and a selectable restart button 1156.The host and/or the external storage device may receive a selection ofthe enable button 1152, the disable button 1154, and the restart button1156. When a selection of the enable button 1152 is received, theexternal storage device can operate in an enhanced mode operation. Inexemplary embodiments of the present general inventive concept, theenhanced mode operation can include a 32-bit mode, where each storagearea (e.g., storage areas ST_1, ST_2, . . . , ST_n) of the externalstorage device may be less than or equal to 2 TB of storage capacity.When a selection of the disable button 1154 is received, the externalstorage device can operate in a legacy mode operation. In exemplaryembodiments of the present general inventive concept, the legacy modeoperation can include a 64-bit mode, where each storage area (e.g.,storage areas ST_1, ST_2, . . . , ST_n) of the external storage devicemay be less than or equal to 4 TB of storage capacity. When a selectionof the restart button 1156 is received, the external storage device isoperated in a selected mode condition (e.g., an enhanced mode, a legacymode, etc.). Again, the above-described 32-bit and 64-bit modes, andstorage capacities of 2 TB and 4 TB are merely exemplary, and other bitmodes and corresponding storage sizes may be used.

FIG. 13 illustrates a detailed view of the controller 510 illustrated inFIG. 6 according to exemplary embodiments of the present generalinventive concept. As illustrated in FIG. 11, the controller 510 mayinclude a control unit 1210 and a memory 1250. In exemplary embodimentsof the present general inventive concept, the memory 1250 can be anon-volatile memory. The control unit 1210 can store the first controlcommand CON1 in the memory 1250 when the CON1 is received from the host580. The CON1 can include, for example, ID code information. That is,when the system 500 restarts (e.g., when receiving a restart and/orpower on command), the external storage ID code information call be usedto by the controller 510 to identify the storage areas of the externalstorage device 550, as the ID code information can be stored in thememory 1250. In exemplary embodiments of the present general inventiveconcept, when a new first control command CON1 is received by thecontroller 510 which includes new ID code information, the codeinformation in the memory 1250 can be erased and/or replaced with thenewly-received code information. The controller 510 can identify amerged storage area (e.g., where the ID codes for the storage areas arethe same, as illustrated in FIG. 8) or each independent storage area(e.g., where at least two ID codes of the storage areas can bedifferent, as illustrated in FIG. 9) using the control command CON1. Inexemplary embodiments of the present general inventive concept, when anew control command CON1 is received by the controller 510, a restartsignal may also be received by the controller 510 from the host 580.When the restart signal is received by the controller 510, thecontroller 510 can control the operation of the external storage device550 so as to communicatively reconnect it to the host 580. Thecontroller 510 can identify at least one storage area of the externalstorage device 550 by using the information stored in the memory 1250and/or the information received from the host 580 via the CON1.

FIG. 14 illustrates a flowchart of a method of configuring an externalstorage device according to exemplary embodiments of the present generalinventive concept. Referring to FIGS. 12B and 14, at operation S1402 itis determined whether the enable button 1152 has been selected, and, ifno such selection has been received, it is determined at operation S1404whether the disable button 1154 has been selected. If a selection of thedisable button 1154 has not been received at operations S1404 and S1406,no operation is performed by the external storage device. When theenable button 1152 is determined to be selected at operation S1402, anon-volatile memory flag can be set to a “1” value at operation S1408,and the external storage device may operate in the enhanced mode (e.g.,32-bit mode) as described above. When the disable button 1154 isdetermined to be selected at operation S1404, a nonvolatile memory flagcan be set to a “0” value, and the external storage device may operatein the legacy mode (e.g., 64-bit mode) as described above. At operationS1412, a selection of the restart button 1156 can restart the system andoperate the external storage device according to the newly setconfiguration indicated by the non-volatile memory flag setting.

FIG. 15 illustrates a flowchart of a method of using a non-volatilememory flag information in the operation of an external memory deviceaccording to exemplary embodiments of the present general inventiveconcept. At operation S1502, a non-volatile memory flag value can beread from a memory location in the external memory device and/or amemory of a controller that is communicatively coupled to the externalstorage device. At operation S1504, it is determined whether thenon-volatile memory flag value is “1.” When it is determined that thenon-volatile memory flag value is not “1” (e.g., the value is “0”) atoperation S1504, the external storage device can operate in a legacyoperation mode at operation S1506 as described in detail above. When itis determined that the non-volatile memory flag value is “1” atoperation S1504, the external storage device can operate in an enhancedoperation mode at operation S1508 as described in detail above.

FIGS. 16A-16C illustrate flowcharts of operations of finding a targetaddress according to exemplary embodiments of the present generalinventive concept. An external storage device may have eight storageareas, identified as LUN 0 to LUN 7. In exemplary embodiments of thepresent general inventive concept, LUN0 can have the start LBA (logicalblock address) of the entire storage capacity of the external storagedevice, so that the data addresses for the external storage device canstart from the LUN0 storage area. Referring to FIG. 16A, when a hostdevice that is communicatively coupled to the external storage devicerequests data from the LUN0 storage area, at operation S1602, it isdetermined whether the LUN is 0 or not. If it is determined that the LUNis 0, a command can be sent from the host to the external storage devicevia a USB interface at operation S1604. The command can include, forexample, an operation function, at least one address, a read size, orany other suitable information to carry out the exemplary embodiments ofthe present general inventive concept as described herein. Asillustrated in operation S1604 of FIG. 16A, the operation function canbe an operation code 0x28, which is a USB read command, the LBA and/oraddress can be 0x10000 (e.g., the target address to start the reading ofdata), and the block count and/or read size can be 128 blocks (e.g.,where 128 blocks can be a predetermined read block size). At operationS1606, a USB controller can convert the received command from the hostto a SATA (Serial Advanced Technology Attachment) and/or ATA (AdvancedTechnology Attachment) command. For example, as illustrated in FIG. 16Aat operation S1606, the converted operation code is 0x25 for an ATA readcommand (e.g., the USB operation code 0x28 read command of operationS1604 can be converted to the 0x25 ATA read command), and the LBA andblock count can be the same as at operation S1604 (e.g., the LBA can be0x10000, and the block count can be 128). When the received command isconverted at operation S1606, a block count (e.g., a block count of 128)of data can be read at the LBA (e.g., 0x10000).

Referring to FIG. 16B, when a host device that is communicativelycoupled to the external storage device requests data from the stora˜1earea, at operation S1608, it is determined whether the LUN is 1 or not.If it is determined that the LUN is 1, a command can be sent from thehost to the external storage device via a USB interface at operationS1610. The command can include, for example, an operation function, atleast one address, a read size, or any other suitable information tocarry out the exemplary embodiments of the present general inventiveconcept as described herein. As illustrated in operation S1610 of FIG.16B, the operation function can be an operation code 0x28, which is aUSB read command, the LBA and/or address can be 0x10000, and the blockcount and/or read size can be 128 blocks. At operation S1612, a USBcontroller can convert the received command from the host to a SATAand/or ATA command. For example, as illustrated in FIG. 16B at operationS1610, the converted operation code is 0x25 for an ATA read command(e.g., the USB operation code 0x28 read command of operation S1610 canbe converted to the 0x25 ATA read command), but the LBA and block countcan be calculated to have a target address of 0x10000+0xFFFFFFFF. Thatis, the LBA of 0x10000 at operation S1612 can be modified by 0xFFFFFFFFto calculate a target address so as to read at the beginning of thestorage area LUN1. When the received command is converted at operationS1612, a block count (e.g., a block count of 128) of data can be read atthe LBA (e.g., 0x10000+0xFFFFFFFF).

Referring to FIG. 16C, when a host device that is communicativelycoupled to the external storage device requests data from the storagearea, at operation S1614, it is determined whether the LUN is 7 or not.If it is determined that the LUN is 7, a command can be sent from thehost to the external storage device via a USB interface at operationS1616. The command can include, for example, an operation function, atleast one address, a read size, or any other suitable information tocarry out the exemplary embodiments of the present general inventiveconcept as described herein. As illustrated in operation SI616 of FIG.16C, the operation function can be an operation code 0x28, which is aUSB read command, the LBA and/or address can be 0x10000, and the blockcount and/or read size can be 128 blocks. At operation S1618, a USBcontroller can convert the received command from the host to a SATAand/or ATA command. For example, as illustrated in FIG. 16C at operationS1618, the converted operation code is 0x25 for an ATA read command(e.g., the USB operation code 0x28 read command of operation S1616 canbe converted to the 0x25 ATA read command), but the LBA and block countcan be calculated to have a target address of 0x10000+0xFFFFFFFF×7. Thatis, the LBA at operation S1616 can be modified (e.g., by adding0xFFFFFFFF×7) so as to calculate a target address to read at thebeginning of the storage area LUN7. When the received command isconverted at operation S1618, a block count (e.g., a block count of 128)of data can be read at the calculated target LBA (e.g.,0x10000+0xFFFFFFFF×7).

Although FIGS. 16A-16C relate to the conversion of USB commands to ATAand/or SATA commands, any suitable interface command can be converted toanother interface command so as to carry out the exemplary embodimentsof the present general inventive concept as disclosed herein.

The present general inventive concept can also be embodied ascomputer-readable codes on a computer-readable medium. Thecomputer-readable medium can include a computer-readable recordingmedium and a computer-readable transmission medium. Thecomputer-readable recording medium is any data storage device that canstore data as a program which can be thereafter read by a computersystem. Examples of the computer-readable recording medium includeread-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetictapes, floppy disks, and optical data storage devices. Thecomputer-readable recording medium can also be distributed over networkcoupled computer systems so that the computer-readable code is storedand executed in a distributed fashion. The computer-readabletransmission medium can be transmitted through carrier waves or signals(e.g., wired or wireless data transmission through the Internet). Also,functional programs, codes, and code segments to accomplish the presentgeneral inventive concept can be easily construed by programmers skilledin the art to which the present general inventive concept pertains.

Although several embodiments of the present general inventive concepthave been shown and described, it would be appreciated by those skilledin the art that changes may be made in these embodiments withoutdeparting from the principles and spirit of the general inventiveconcept, the scope of which is defined in the claims and theirequivalents.

1. A disk device, comprising: a controller configured to transmit firstcommands in response to second commands from a host, the first commandsto assign at least one identification (ID) code to at least one of aplurality of storage areas in a storage device, the second commandsincluding the at least one ID code; wherein the controller transfersdata between the host and the storage device using the ID codes.
 2. Thedisk device of claim 1, wherein: the controller is configured to requestID codes already assigned to storage areas of the storage device.
 3. Thedisk device of claim 1, wherein: the controller is configured to receiveID codes already assigned to storage areas transmitted from the storagedevice.
 4. The disk device of claim 1, wherein: the controller includesa controller memory to store ID codes received in second commands fromthe host.
 5. The disk device of claim 4, wherein: the controller memorycomprises a non-volatile memory.
 6. The disk device of claim 1, wherein:the controller is configured to translate the commands from the hostfrom one format into a second format for the storage device.
 7. The diskdevice of claim 6, wherein: the first format is a Universal Serial Bus(USB) format; and the second format is selected from an ATA format,including SATA format.
 8. A disk device, comprising: a plurality ofstorage areas, each storage area having a corresponding programmableidentification (ID) code; and a controller configured to program the IDcodes for the storage areas in response to first commands from a host,and transfer data between the host and the storage device using the IDcodes.
 9. The disk device of claim 8, wherein: at least two of thestorage areas are formed in same storage device.
 10. The disk device ofclaim 9, wherein: the storage device is selected from: a hard diskdriver and a solid state drive.
 11. The disk device of claim 8, wherein:the plurality of storage areas comprise at least one storage device; andthe controller is configured to determine if the storage device includesa single storage area or plural storage areas in response to a firstcommand from the host.
 12. The disk device of claim 8, wherein: theplurality of storage areas comprise at least one storage device; whereinthe storage device is initialized into one of at least two modes ofoperation in response to a mode indication, the storage areas of thestorage device having different maximum sizes in the different modes ofoperation.
 13. The disk device of claim 12, wherein: the mode indicationis selected from: a state of a switch in the storage device; a selectioninput from the controller; a selection input from the host; and a valuestored in a non-volatile store.
 14. The disk device of claim 8, wherein:the controller includes a controller memory configured to store IDcodes.
 15. The disk device of claim 14, wherein: the controller isfurther configured to re-connect to the host in response to receiving arestart signal with a first command, and identify storage areas usingthe ID codes stored in the controller memory.
 16. A method, comprising:in response to a first command from a host, generating a second commandfor application to at least one storage device to assign at least oneidentification (ID) code to any of a plurality of storage areas in theat least one storage device.
 17. The method of claim 16, wherein:assigning the at least one ID code includes assigning a same ID code tomultiple storage areas to merge the multiple storage areas into onelarger storage area.
 18. The method of claim 16, wherein: assigning theat least one ID code includes assigning a different ID code to one ofmultiple storage areas having the same ID code, to split a largerstorage area into smaller storage areas with different ID codes.
 19. Themethod of claim 16, further including: transferring data between the atleast one storage device and the host using the ID codes.
 20. The methodof claim 16, further including: translating the commands from the hostfrom one format into a second format for application to the at least onestorage device.